import java.util.ArrayList;
import java.util.List;

/**
 * Clase que representa una torre
 * @author Francisco
 *
 */
public class Torre {
	/**
	 * Propiedad del nombre de la torre
	 */
	private String name;
	/**
	 * Lista de torres de enlace, se maneja por referencias
	 */
	private List<Torre> linkTorre=new ArrayList<Torre>();
	/**
	 * Metodo constructor para torres sin enlace
	 * @param name
	 */
	public Torre(String name){
		this.name = name;
	}
	
	/**
	 * Obtiene el nombre de la torre
	 * @return Nombre de la torre
	 */
	public String getName() {
		return name;
	}

	/**
	 * Obtiene la lista de enlaces
	 * @return
	 */
	public List<Torre> getTorreLink() {
		return linkTorre;
	}
	
	/**
	 * Agrega un nuevo enlace a la lista de enlaces
	 * @param torreLink Torre a enlazar
	 */
	public void addTorreLink(Torre torreLink){
		Torre torre = TorreHelper.getTorre(linkTorre, torreLink.getName());
		
		if (torre == null){
			linkTorre.add(torreLink);
		}
	}
	
	/**
	 * Remueve una torre de la lista de enlaces
	 * @param torreLink Torre a remover en la lista
	 */
	public void removeTorreLink(Torre torreLink){
		Torre torre = TorreHelper.getTorre(linkTorre, torreLink.getName());
		
		if (torre != null){
			linkTorre.remove(torreLink);
		}
	}
}
